#include<iostream>
#include<queue>
using namespace std;

/*
    queue 是 C++ 标准模板库（STL）中的一个容器适配器，提供了先进先出（FIFO）的数据结构。
    它允许在队列的尾部添加元素，在队列的头部删除元素。
    queue的基本操作：
    push(x)：在队列尾部添加元素 x。
    pop()：删除队列头部元素。
    front()：访问队列头部元素。
    back()：访问队列尾部元素。
    size()：返回队列中元素的个数。
    empty()：判断队列是否为空。

*/

int main() {
    queue<int> q; // 初始化一个空队列

    cout << "Size of q: " << q.size() << endl;

    cout << "q is: empty " << (q.empty() ? "true" : "false") << endl;

    q.push(10); // 在队列尾部添加元素 10
    cout << "After push(10), size of q: " << q.size() << endl;
    q.push(20); // 在队列尾部添加元素 20
    cout << "After push(20), size of q: " << q.size() << endl;

    cout << "Front element: " << q.front() << endl; // 访问队列第一个元素
    cout << "Back element: " << q.back() << endl; // 访问队列最后一个元素

    q.pop(); // 删除队列第一个元素
    cout << "After pop(), size of q: " << q.size() << endl;

    cout << "Front element: " << q.front() << endl; // 访问队列第一个元素
    cout << "Back element: " << q.back() << endl; // 访问队列最后一个元素


    return 0; 
}